From: Ben Hutchings Date: Tue, 24 Jul 2012 02:13:10 +0000 (+0100) Subject: Include package version along with kernel release in stack traces X-Git-Tag: archive/raspbian/4.9.13-1+rpi1~139 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com//styles.css/%22http:/www.example.com/styles.css?a=commitdiff_plain;h=f09ecfb42eb29ab43b91d2c9c34791a6cd904ce1;p=linux-4.9.git Include package version along with kernel release in stack traces For distribution binary packages we assume $DISTRIBUTION_OFFICIAL_BUILD, $DISTRIBUTOR and $DISTRIBUTION_VERSION are set. Gbp-Pq: Topic debian Gbp-Pq: Name version.patch --- diff --git a/Makefile b/Makefile index a339bd6c595a..51a715b51441 100644 --- a/Makefile +++ b/Makefile @@ -977,7 +977,7 @@ endif prepare2: prepare3 outputmakefile asm-generic prepare1: prepare2 $(version_h) include/generated/utsrelease.h \ - include/config/auto.conf + include/config/auto.conf include/generated/package.h $(cmd_crmodverdir) archprepare: archheaders archscripts prepare1 scripts_basic @@ -1009,6 +1009,16 @@ define filechk_version.h echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) endef +ifneq ($(DISTRIBUTION_OFFICIAL_BUILD),) +define filechk_package.h + echo \#define LINUX_PACKAGE_ID \" $(DISTRIBUTOR) $(DISTRIBUTION_VERSION)\" +endef +else +define filechk_package.h + echo \#define LINUX_PACKAGE_ID \"\" +endef +endif + $(version_h): $(srctree)/Makefile FORCE $(call filechk,version.h) $(Q)rm -f $(old_version_h) @@ -1016,6 +1026,9 @@ $(version_h): $(srctree)/Makefile FORCE include/generated/utsrelease.h: include/config/kernel.release FORCE $(call filechk,utsrelease.h) +include/generated/package.h: $(srctree)/Makefile FORCE + $(call filechk,package.h) + PHONY += headerdep headerdep: $(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \ diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index b51514957620..1eaf63bef929 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -103,9 +104,9 @@ show_regs (struct pt_regs *regs) print_modules(); printk("\n"); show_regs_print_info(KERN_DEFAULT); - printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n", + printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s%s)\n", regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(), - init_utsname()->release); + init_utsname()->release, LINUX_PACKAGE_ID); print_symbol("ip is at %s\n", ip); printk("unat: %016lx pfs : %016lx rsc : %016lx\n", regs->ar_unat, regs->ar_pfs, regs->ar_rsc); diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index ef2ad2d682da..79772fb52a5f 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -1034,8 +1035,9 @@ void show_regs(struct pt_regs * regs) printk("NIP: "REG" LR: "REG" CTR: "REG"\n", regs->nip, regs->link, regs->ctr); - printk("REGS: %p TRAP: %04lx %s (%s)\n", - regs, regs->trap, print_tainted(), init_utsname()->release); + printk("REGS: %p TRAP: %04lx %s (%s%s)\n", + regs, regs->trap, print_tainted(), init_utsname()->release, + LINUX_PACKAGE_ID); printk("MSR: "REG" ", regs->msr); printbits(regs->msr, msr_bits); printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); diff --git a/arch/x86/um/sysrq_64.c b/arch/x86/um/sysrq_64.c index 38b4e4abd0f8..6bc031d04fe9 100644 --- a/arch/x86/um/sysrq_64.c +++ b/arch/x86/um/sysrq_64.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -16,8 +17,9 @@ void show_regs(struct pt_regs *regs) { printk("\n"); print_modules(); - printk(KERN_INFO "Pid: %d, comm: %.20s %s %s\n", task_pid_nr(current), - current->comm, print_tainted(), init_utsname()->release); + printk(KERN_INFO "Pid: %d, comm: %.20s %s %s%s\n", task_pid_nr(current), + current->comm, print_tainted(), init_utsname()->release, + LINUX_PACKAGE_ID); printk(KERN_INFO "RIP: %04lx:[<%016lx>]\n", PT_REGS_CS(regs) & 0xffff, PT_REGS_IP(regs)); printk(KERN_INFO "RSP: %016lx EFLAGS: %08lx\n", PT_REGS_SP(regs), diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index c048e34b177f..05521936910a 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -46,6 +46,7 @@ #include #include #include +#include #include @@ -3144,11 +3145,12 @@ void __init dump_stack_set_arch_desc(const char *fmt, ...) */ void dump_stack_print_info(const char *log_lvl) { - printk("%sCPU: %d PID: %d Comm: %.20s %s %s %.*s\n", + printk("%sCPU: %d PID: %d Comm: %.20s %s %s %.*s%s\n", log_lvl, raw_smp_processor_id(), current->pid, current->comm, print_tainted(), init_utsname()->release, (int)strcspn(init_utsname()->version, " "), - init_utsname()->version); + init_utsname()->version, + LINUX_PACKAGE_ID); if (dump_stack_arch_desc_str[0] != '\0') printk("%sHardware name: %s\n",